package br.com.minhascontas.DAO;

import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MinhasContasOpenHelper extends SQLiteOpenHelper {

	@SuppressWarnings("unused")
	private SQLiteDatabase database;

	private static int DATABASE_VERSION = 2;
	private static final String DATABASE = "minhasContas";
	private static String GRUPO_TABLE_NAME = "grupo";
	private static String ITEMGRUPO_TABLE_NAME = "itemGrupo";
	private static String LANCAMENTOS_TABLE_NAME = "lancamentos";

	private static final String GRUPO_TABLE_CREATE = "CREATE TABLE "
			+ GRUPO_TABLE_NAME + "(id INTEGER PRIMARY KEY, "
			+ " nome TEXT UNIQUE NOT NULL);";

	private static final String ITEMGRUPO_TABLE_CREATE = "CREATE TABLE "
			+ ITEMGRUPO_TABLE_NAME
			+ " (id INTEGER PRIMARY KEY,  nome TEXT UNIQUE NOT NULL, idGrupo INTEGER, FOREIGN KEY(idGrupo) REFERENCES "
			+ GRUPO_TABLE_NAME + " (id));";

	private static final String LANCAMENTOS_TABLE_CREATE = "CREATE TABLE "
			+ LANCAMENTOS_TABLE_NAME
			+ " (id INTEGER PRIMARY KEY, valor DOUBLE UNIQUE NOT NULL, observacao TEXT, idGrupo INTEGER, idItemGrupo INTEGER, dia INTEGER ,  mes INTEGER , ano INTEGER, data DATETIME, debito INTEGER, "
			+ " FOREIGN KEY(idGrupo) REFERENCES " + GRUPO_TABLE_NAME + "(id),"
			+ " FOREIGN KEY(idItemGrupo) REFERENCES " + ITEMGRUPO_TABLE_NAME
			+ "(id));";

	public MinhasContasOpenHelper(Context context) {
		super(context, DATABASE, null, DATABASE_VERSION);

	}

	public void open() throws SQLException { // chama o onCreate
		database = this.getWritableDatabase();
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub

		String sqlGrupo = GRUPO_TABLE_CREATE;
		db.execSQL(sqlGrupo);

		String sqlItem = ITEMGRUPO_TABLE_CREATE;
		db.execSQL(sqlItem);

		String sqlLancamentos = LANCAMENTOS_TABLE_CREATE;
		db.execSQL(sqlLancamentos);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub

	}

	public static int getDatabaseVersion() {
		return DATABASE_VERSION;
	}

	public static String getGrupoTableName() {
		return GRUPO_TABLE_NAME;
	}

	public static String getItemgrupoTableName() {
		return ITEMGRUPO_TABLE_NAME;
	}

	public static String getGrupoTableCreate() {
		return GRUPO_TABLE_CREATE;
	}

	public static String getItemgrupoTableCreate() {
		return ITEMGRUPO_TABLE_CREATE;
	}

}
